home *** CD-ROM | disk | FTP | other *** search
/ Aminet 24 / Aminet 24 (1998)(GTI - Schatztruhe)[!][Apr 1998].iso / Aminet / dev / c / AmiVoGL_MDEV.lha / hershey / src / h2v.h < prev    next >
Text File  |  1994-04-17  |  10KB  |  276 lines

  1. /* h2v.h: */
  2.  
  3. /* ---------------------------------------------------------------------
  4.  * Definitions:
  5.  *  Some useful stuff....
  6.  */
  7.  
  8. #define ABS(x)        ((int)(x) < 0 ? (int)(-x) : (int)(x))
  9. #define MAX(x,y)    ((int)(x) < (int)(y) ? (int)(y) : (int)(x))
  10. #define MIN(x,y)    ((int)(x) < (int)(y) ? (int)(x) : (int)(y))
  11.  
  12. /*
  13.  * convert hershey byte to coordinate
  14.  */
  15. #define    COORD(x)    ((int)(x) - (int)'R')
  16.  
  17. /*
  18.  *  Max Number of Hershey characters.
  19.  */
  20. #define    MAX_CHARS    6300
  21.  
  22. #define    MAX_POINTS    500            /* max points in a char */
  23. #define    MAX_BUF        (2 * MAX_POINTS)    /* max buffer size */
  24.  
  25. /* ---------------------------------------------------------------------
  26.  * Data Structures and Typedefs:
  27.  */
  28.  
  29. /*
  30.  * hershey table tape
  31.  */
  32. typedef struct {
  33.     short    len;
  34.     char    *ch;
  35. } HTAB;
  36.  
  37. /*
  38.  *  These next few tables define which of the hershey characters
  39.  *  actually make up the various fonts.
  40.  */  
  41.  
  42. #define    MAX_ENTS    200
  43.  
  44. typedef struct {
  45.         char    *name;
  46.         int     ent[MAX_ENTS];
  47. } FTAB;
  48.  
  49. /* ---------------------------------------------------------------------
  50.  * Global Data:
  51.  */
  52.  
  53. FTAB    fonts[] = {
  54.     {
  55.         "times.g",
  56.         2199, 0, 2214, 0, 2217, 0, 733, 0, 2274, 0, 2271, 0, 2272, 0,
  57.         2216, 0, 2721, 0, 2722, 0, 728, 0, 725, 0, 1211, 0, 724, 0,
  58.         1210, 0, 720, 0, 2200, 2209, 1212, 1213, 2241, 0, 2238, 0,
  59.         2242, 0, 2215, 0, 2273, 0, 2027, 2028, 2048, 0, 2030, 0,
  60.         2031, 0, 2047, 0, 2029, 0, 2033, 0, 2035, 0, 229, 0, 2036, 2039,
  61.         2041, 2042, 2034, 0, 2043, 2046, 718, 0, 2050, 0, 2040, 0,
  62.         2049, 0, 2032, 0, 1405, 0, 804, 0, 1406, 0, 2247, 0, 3929, 0,
  63.         2249, 0, 2127, 2128, 2148, 0, 2130, 2131, 2147, 0, 2129, 0,
  64.         2133, 0, 2135, 0, 727, 0, 2136, 2139, 2141, 2142, 2134, 0,
  65.         2143, 2146, 2237, 0, 2150, 0, 2140, 0, 2149, 0, 2132, 0,
  66.         1407, 0, 723, 0, 1408, 0, 2246, 0, 3934, 0, 0,0
  67.     },
  68.     {
  69.         "times.i",
  70.         2199,0, 2764,0, 2778,0, 733,0, 2769,0, 2271,0, 2272,0,
  71.         2777,0, 2771,0, 2772,0, 728,0, 725,0, 2761,0, 724,0,
  72.         2760,0, 720,0, 2750,2759, 2762,2763, 2241,0, 2238,0, 2242,0,
  73.         2765,0, 2273,0, 2051,2076, 1405,0, 804,0, 1406,0, 2247,0,
  74.         3929,0, 2249,0, 2151,2176, 1407,0, 723,0, 1408,0, 2246,0,
  75.         3934,0, 0,0,
  76.     },
  77.     {
  78.         "times.r",
  79.         2199,0, 2214,0, 2728,0, 733,0, 2274,0, 2271,0, 2272,0,
  80.         2216,0, 2221,0, 2222,0, 728,0, 725,0, 1211,0, 724,0,
  81.         1210,0, 720,0, 2200,2209, 1212,1213, 2241,0, 2238,0, 2242,0,
  82.         2215,0, 2273,0, 2001,2026, 1405,0, 804,0, 1406,0, 2247,0,
  83.         3929,0, 2249,0, 2101,2126, 1407,0, 723,0, 1408,0, 2246,0,
  84.         3934,0, 0,0,
  85.     },
  86.     {
  87.         "times.ib",
  88.         2199,0 , 3264,0, 2778,0, 733,0, 3269,0, 2271,0, 3268,0,
  89.         2777,0, 3271,3272 , 3273,0, 2725,0, 3261,0, 724,0, 3260,0,
  90.         2720,0, 3250,3259, 3262,3263, 2241,0, 2726,0, 2242,0, 3265,0,
  91.         2273,0, 3051,3076, 1405,0, 804,0, 1406,0, 2247,0, 3929,0,
  92.         2249,0, 3151,3176, 1407,0, 723,0, 1408,0, 2246,0, 3934,0, 0,0,
  93.     },
  94.     {
  95.         "times.rb",
  96.         2199,0 , 3214,0, 3228,0, 733,0, 3219,0, 2271,0, 3218,0,
  97.         3227,0, 3221,0, 3222,0, 2723,0, 2725,0, 3211,0, 724,0,
  98.         3210,0, 2720,0, 3200,3209, 3212,3213, 2241,0, 2726,0, 2242,0,
  99.         3215,0, 2273,0, 3001,3026, 1405,0, 804,0, 1406,0, 2247,0,
  100.         3929,0, 2249,0, 3101,3126, 1407,0, 723,0, 1408,0, 2246,0,
  101.         3934,0, 0,0,
  102.     },
  103.     {
  104.         "futura.l",
  105.         2199,0, 714,0, 717,0, 733,0, 719,0, 2271,0, 734,0,
  106.         2251,0, 721,0, 722,0, 728,0, 725,0, 1211,0, 724,0,
  107.         1210,0, 720,0, 700,709, 1212,1213, 2241,0, 2238,0, 2242,0,
  108.         715,0, 2273,0, 501,526, 1405,0, 804,0, 1406,0, 832,0,
  109.         3927,0, 1252,0, 601,626, 1407,0, 723,0, 1408,0, 2246,0,
  110.         3934,0, 0,0,
  111.     },
  112.     {
  113.         "futura.m",
  114.         2199,0, 2714,0, 2728,0, 733,0, 2719,0, 2271,0, 2272,0,
  115.         2727,0, 2221,2222 , 2723,0, 2725,0, 2711,0, 724,0, 2710,0,
  116.         2720,0, 2700,2709, 2712,2713, 2241,0, 2726,0, 2242,0, 2715,0,
  117.         2273,0, 2501,2526, 1405,0, 804,0, 1406,0, 2247,0, 3929,0,
  118.         2249,0, 2601,2626, 2227,0, 723,0, 2228,0, 2246,0, 3934,0, 0,0,
  119.     },
  120.     {
  121.         "gothic.eng",
  122.         2199,0, 3714,0, 3728,0, 733,0, 3719,0, 2271,0, 3718,0,
  123.         3227,0, 3221,0, 3222,0, 2723,0, 2725,0, 3711,0, 724,0,
  124.         3710,0, 2720,0, 3700,3709, 3712,3713, 2241,0, 2726,0, 2242,0,
  125.         3715,0, 2273,0, 3501,3526, 1405,0, 804,0, 1406,0, 2247,0,
  126.         3931,0, 2249,0, 3601,3626, 1407,0, 723,0, 1408,0, 2246,0,
  127.         3934,0, 0,0,
  128.     },
  129.     {
  130.         "gothic.ger",
  131.         2199,0 , 3714,0, 3728,0, 733,0, 3719,0, 2271,0, 3718,0,
  132.         3227,0, 3221,0, 3222,0, 2723,0, 2725,0, 3711,0, 724,0,
  133.         3710,0, 2720,0, 3700,3709, 3712,3713, 2241,0, 2726,0, 2242,0,
  134.         3715,0, 2273,0, 3301,3326, 1405,0, 804,0, 1406,0, 2247,0,
  135.         3932,0, 2249,0, 3401,3426, 1407,0, 723,0, 1408,0, 2246,0,
  136.         3934,0, 0,0,
  137.     },
  138.     {
  139.         "gothic.ita",
  140.         2199,0, 3714,0, 3728,0, 733,0, 3719,0, 2271,0, 3718,0,
  141.         3227,0, 3221,0, 3222,0, 2723,0, 2725,0, 3711,0, 724,0,
  142.         3710,0, 2720,0, 3700,3709, 3712,3713, 2241,0, 2726,0, 2242,0,
  143.         3715,0, 2273,0, 3801,3826, 1405,0, 804,0, 1406,0, 2247,0,
  144.         3933,0, 2249,0, 3901,3926, 1407,0, 723,0, 1408,0, 2246,0,
  145.         3934,0, 0,0,
  146.     },
  147.     {
  148.         "math.low",
  149.         2199,0, 2233,2235, 229,0, 2271,0, 2243,2244, 2221,2222, 
  150.         728,0, 725,0, 1211,0, 724,0, 1210,0, 720,0, 700,709,
  151.          2401,2402, 2241,0, 2238,0, 2242,0, 2239,0, 2240,0,
  152.          601,626, 1405,0, 804,0, 1406,0, 2245,0, 2270,0, 718,719,
  153.         2255,0, 2267,0, 2256,2266, 2267,0, 2268,0, 2412,0, 2403,2406,
  154.         2279,0, 2077,0, 2237,0, 2230,0, 738,0, 1407,0, 739,0,
  155.         1408,0, 740,0, 2246,0, 0,0,
  156.     },
  157.     {
  158.         "math.upp",
  159.         2199,0, 2233,2235, 229,0, 2271,0, 2243,2244, 2221,2222, 728,0,
  160.         725,0, 711,0, 724,0, 710,0, 720,0, 700,709, 2401,2402,
  161.         2241,0, 2238,0, 2242,0, 2239,0, 2240,0, 501,526, 1405,0,
  162.         804,0, 1406,0, 2245,0, 2270,0, 718,0, 728,0, 2255,0,
  163.         2267,0, 2256,2266, 2267,0, 2268,0, 2412,0, 2403,2406, 2279,0,
  164.         2077,0, 2237,0, 2230,0, 738,0, 1406,0, 739,0, 1407,0,
  165.         740,0, 2246,0, 0,0,
  166.     },
  167.     {
  168.         "cyrillic",
  169.         2199, 0, 2214, 0, 2217, 0, 733, 0, 2828, 0, 2923, 0, 2928, 0,
  170.         2216, 0, 2721, 0, 2722, 0, 728, 0, 725, 0, 1211, 0, 724, 0,
  171.         1210, 0, 720, 0, 2200, 2209, 1212, 1213, 2241, 0, 2238, 0,
  172.         2242, 0, 2215, 0, 2273, 0, 2801, 2802, 2830, 0, 2805, 0,
  173.         2809, 0, 2821, 0, 2804, 0, 2807, 0, 2809, 0, 2824, 0,
  174.         2811, 2816, 2825, 0, 2817, 2819, 2831, 0, 2803, 0, 2826, 0,
  175.         2822, 0, 2820, 0, 2808, 0, 2806, 0, 804, 0, 2827, 0, 2832, 0,
  176.         2829, 0, 2823, 0, 2901, 2902, 2830, 0, 2905, 0, 2910, 0,
  177.         2921, 0, 2904, 0, 2907, 0, 2909, 0, 2924, 0, 2911, 2916,
  178.         2925, 0, 2917, 2919, 2931, 0, 2903, 0, 2926, 0, 2922, 0,
  179.         2920, 0, 2908, 0, 2906, 0, 2927, 0, 2932, 0, 2929, 0, 2246, 0,
  180.         0,0
  181.     },
  182.     {
  183.         "astrology",
  184.         2199,0, 2312,0, 2728,0, 2281,2285, 2221,0, 2222,0, 2286,2287,
  185.         1211,0, 2288,0, 1210,0, 2289,0, 3250,3259, 2290,2295, 2301,0,
  186.         3001,3026, 2302,0, 804,0, 2303,2306, 3151,3176, 2308,2311,
  187.         2246,0, 0,0,
  188.     },
  189.     {
  190.         "meteorology",
  191.         2199,0, 750,753, 2271,0, 754,757, 728,0, 758,0, 1211,0,
  192.         724,0, 1210,0, 720,0, 700,709, 759,763, 2215,0, 2273,0,
  193.         501,526, 1405,0, 804,0, 1406,0, 519,0, 766,0, 765,0,
  194.         601,626, 1407,0, 767,0, 1408,0, 768,0, 2246,0, 0,0,
  195.     },
  196.     {
  197.         "music",
  198.         2199,0, 2214,0, 2318,2329, 2378,0, 2331,0, 2200,2209, 712,0,
  199.         2330,2331, 2381,0, 2332,0, 2382,0, 2377,0, 2051,2076, 1405,0,
  200.         804,0, 1406,0, 2248,0, 724,0, 2249,0, 2151,2176, 1407,0,
  201.         723,0, 1408,0, 2246,0, 3934,0, 0,0,
  202.     },
  203.     {
  204.         "greek",
  205.         2199, 0, 714, 0, 717, 0, 733, 0, 719, 0, 2271, 0, 734, 0,
  206.         2251, 0, 721, 0, 722, 0, 728, 0, 725, 0, 1211, 0, 724, 0,
  207.         1210, 0, 720, 0, 700, 709, 1212, 1213, 2241, 0, 2238, 0,
  208.         2242, 0, 715, 0, 2273, 0, 527, 528, 548, 0, 530, 531, 547, 0,
  209.         529, 0, 533, 0, 535, 0, 229, 0, 536, 539, 541, 542, 534, 0,
  210.         543, 546, 718, 0, 550, 0, 540, 0, 549, 0, 532, 0, 1405, 0,
  211.         804, 0, 1406, 0, 832, 0, 3927, 0, 1252, 0, 627, 628, 648, 0,
  212.         630, 631, 647, 0, 629, 0, 633, 0, 635, 0, 727, 0, 636, 639,
  213.         641, 642, 634, 0, 643, 646, 2237, 0, 650, 0, 640, 0, 649, 0,
  214.         632, 0, 1407, 0, 723, 0, 1408, 0, 2246, 0, 3934, 0, 0,0,
  215.     },
  216.     {
  217.         "cursive", 
  218.         2199,0, 714,0, 717,0, 733,0, 719,0, 2271,0, 734,0,
  219.         216,0, 721,0, 722,0, 728,0, 725,0, 1211,0, 724,0,
  220.         1210,0, 720,0, 700,709, 1212,1213, 2241,0, 2238,0, 2242,0,
  221.         715,0, 2273,0, 551,576, 1405,0, 804,0, 1406,0, 832,0,
  222.         3928,0, 1252,0, 651,676, 1407,0, 723, 0, 1408,0, 2246,0,
  223.         3934,0, 0,0,
  224.     },
  225.     {
  226.         "script",
  227.         2199,0, 2214,0, 2728,0, 733,0, 2274,0, 2271,0, 2272,0,
  228.         2216,0, 2221,0, 2222,0, 728,0, 725,0, 1211,0, 724,0,
  229.         1210,0, 720,0, 2750,2759, 1212,1213, 2241,0, 2238,0, 2242,0,
  230.         2215,0, 2273,0, 2551,2576, 1405,0, 804,0, 1406,0, 2247,0,
  231.         3930,0, 2249,0, 2651,2676, 1407,0, 723,